.. _cemPlsrMove: cemPlsrMove =========== ----------- SYNOPSIS -------- .. code-block:: none VT_I4 cemPlsrMove( VT_I4 Channel, VT_R8 Distance, VT_I4 IsBlocking ) DESCRIPTION ----------- - Pulsar 신호 입력에 맞추어 지정한 거리(상대 좌표) 만큼 이송을 수행한 후에 Manual Pulsar 모드를 해제합니다. - 모션이 완료되기 전까지 반환되지 않습니다. PARAMETER --------- - Channel : 축 번호. 통합 축으로 관리되는 축 번호를 의미하며, 상수 값으로 0 (Zero Based) 이상,. (최대 통합 축 개수 - 1) 이하의 값을 축 번호로 설정할 수 있습니다. - Distance : 이동할 거리를 지정합니다. 지정한 거리만큼 이동한 후 Manual Pulsar 모드는 자동으로. 해제됩니다. 거리의 단위는 “Unit distance” 에 의해 정의되는 논리적 거리입니다. - IsBlocking : cemPlsrMove 함수의 인자이며, 완료될 때까지 기다리는 동안 윈도우 메시지를 블록. (Blocking)할 것인지를 결정합니다. 단, 쓰레드내에서 실행할 때는 이 값을 1(CE_TRUE)로 설정해주어야 합니다. +--------------+----------------------------------------------------------------------------------------------------------------+ | Value | Meaning | +==============+================================================================================================================+ | 0 (CE_FALSE) | 윈도우 메시지를 블록(Blocking) 하지 않습니다. 따라서 해당 모션이 진행되는 동안 윈도우 이벤트를 처리합니다. | +--------------+----------------------------------------------------------------------------------------------------------------+ | 1 (CE_TRUE) | 윈도우 메시지를 블록(Blocking) 합니다. 따라서 해당 모션이 완료되는 동안에는 윈도우 이벤트가 처리되지 않습니다. | +--------------+----------------------------------------------------------------------------------------------------------------+ RETURN VALUE ------------ +----------------+-----------+ | Value | Meaning | +================+===========+ | 음수 | 수행 실패 | +----------------+-----------+ | 0 (ceERR_NONE) | 수행 성공 | +----------------+-----------+ .. note:: Manual Pulsar 모드 모션을 중지하기 위해서는 cemSxStopEmg 함수를 사용하십시오. 이 함수가 호출되면 Manual Pulsar 모드는 해제됩니다. Example ------- .. code-block:: cpp :linenos: C/C++ #include “ceSDK.h” #include “ceSDKDef.h” void OnSetPlsrConfig () { // Manual Pulsar 입력 모드 설정 및 입력 펄스와 출력 펄스 비를 1:2 로 설정합니다. cemPlsrInMode_Set ( cemX1, cemIMODE_CWCCW, CE_FALSE ); cemPlsrGain_Set ( cemX1, 2, 2048 ); /* PA/PB 신호 입력 회로에 노이즈 필터 기능을 적용합니다. 노이즈 필터 기능이 활성화 되면 3.25MHz 이상의 주파수를 가지는 펄스는 노이즈로 처리됩니다.*/ cemCfgFilterAB_Set ( cemX1, cemAB_PULSAR, CE_TRUE ); } void OnPulsarMove () { /* 속도 환경을 설정합니다. 작업 속도는 출력 펄스의 폭을 결정하며, 일반적으로 사용하는 서보 드라이버의 최대 속도로 설정하시면 됩니다. */ cemCfgSpeedPattern_Set ( cemX1, // 대상 축을 설정합니다. cemSMODE_S, // Pulsar 구동에서 속도 모드는 무시됩니다. 655350, // 작업 속도는 출력 펄스의 폭을 결정하며, // 일반적으로 서보드라이버의 최대 속도로 설정하시면 됩니다. 10000, // Pulsar 구동에서 가속도는 무시됩니다. 10000 // Pulsar 구동에서 감속도는 무시됩니다. ); /* Manual Pulsar 입력에 맞춰서 지정한 거리만큼 이송을 수행한 후 Manual Pulsar 모드를 해제 합니다. Pulsar 이송 함수가 수행되면 cemStReadMotionState 함수의 모션 상태 반환 값이 8 ( cemMST_WAIT_PLSR ) 이 됩니다. */ // 지정한 거리만큼 상대좌표 이송을 수행합니다. 모션이 완료되기 전까지 반환되지 않습니다. cemPlsrMove ( cemX1, 10000, CE_FALSE ); // cemPlsrMoveStart()함수는 모션을 시작시킨 후에 바로 반환됩니다. }